Testing an integrated circuit (IC) design may be split into two types: white box and black box. White box testing looks inside a design, and is able to check and/or force every internal node as a part of the testing process. In a complex ASIC design, this is not practical due to the immense search space. Black box testing, on the other hand, treats the internals of the design as an unknown and tests the design solely by driving the inputs and checking the outputs.
In black box testing, one concern is that the internal state of a design has not been exhaustively tested. For example, the external inputs to a sample device under test (DUT) 14 in FIG. 7 are A, B and C, the output signal of the DUT is D, and the internal state of the DUT is E, F, G, and H. One form of black box test might be to make sure that each of the eight combinations of inputs A, B, C to the block has been exercised. However, due to the internal state of the DUT 14, not all cases have truly been covered. The true search space includes the (unseen) internal state. Thus, there are actually 7 “inputs” (including E, F, G and H) to create output D, and exercising every combination would take at least 128 clocks. One might (erroneously) deduce from the simple 8 clock test, as shown in FIG. 8, that the output D never gets set to 1.